package scu.maqiang.mesh;

import scu.maqiang.numeric.Complex;

/**
 * 广义函数接口，定义用于有限元计算的一般数学上使用的复值函数
 * @author 马强
 * @since 1.0
 * @version 1.0	
 */
@FunctionalInterface
public interface ScalarCFunc {
	/**
	 * 广义函数，定义用于有限元计算的一般数学上使用的函数
	 * @param coord 区域坐标，如一维问题，使用coord[0]表示x坐标，
	 *              二维问题使用coord[0], coord[1]分别表示x，y坐标, 
	 *              三维问题使用coord[0], coord[1], coord[2]分别表示x,y,z坐标
	 * @param region 有限元区域标识，在有限元单元上所定义区域标识号，可用于区分材料属性
	 * @param param 实型数组参数，用于其他可用外界参数
	 * @return 广义函数在特定坐标，特定区域，特定参数下的值
	 */
	public Complex action(double[] coord, int region, Complex[] param);
}